//  ********自定义全局函数*********
exports.install = function (Vue, options) {
    //全局变量引入
    //注意全局变量在这里定义默认值，在调用某个函数时再更改对应的值。如果只设定不更改的话，会默认一直是设定的值，类似于const的效果了。
    Vue.prototype.Global = {
        currentDevice:false,//当前设备 是否 mobile
        dialog_label_Position:'right',//el-dialog form dialog对齐方式
        ie_nine:false,//当前浏览器是否是ie9环境
        cacheRouteArr:['item','company','product','examine'],//固定的需要缓存的路由数组
    }
    

    //验证手机号码，座机号码，非必填   注意callback！！！！！
    Vue.prototype.checkTel =function (rule, value, callback)  {
          if(value == '' || value == undefined){
            return callback()
          }
          if(/^1/.test(value)){
              if (!(/^1(3|4|5|7|8)\d{9}$/.test(value))) {
                 callback(new Error('请输入正确的手机号码格式'));
              }
              else{
                return callback()
              } 
          }
          else if(/^0/.test(value)){
             if(!(/0\d{2,3}-\d{7,8}/.test(value))){
                callback(new Error('请输入正确的座机号格式，如0571-88889999'))
              }
              else{
                return callback()
              }
          }
          else{
            callback(new Error('请输入正确的手机号码格式'));
          }  
      };

      
      
       //验证身份证 非必填  注意callback！！！！！
      Vue.prototype.checkIdentCode = function(rule,value,callback){
            if(value == '' || value == undefined){

                return callback()
            }
           let reg=/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/

           if(reg.test(value) == false){
              callback(new Error('请输入正确的身份证号格式'))
           }
           else{
            callback()
           } 
  
      };
    //重置表单
    Vue.prototype.resetForm=function(formName){//注意不能写成箭头函数， this指向不变
        if(this.$refs[formName] != undefined){
          this.$refs[formName].resetFields()
        }
      }
      //清空表单验证结果   所有的 如果单项在当前月面重新定义
    Vue.prototype.clearValidateForm=function(formName){//注意不能写成箭头函数， this指向不变
        if(this.$refs[formName] != undefined){
          this.$refs[formName].clearValidate()
        }
      }

    //服务器错误回掉
    Vue.prototype.outputError=function(error) {
      // this.$message({type:'error',message:'请求服务器失败，请联系管理员或重新尝试！'}) 
    }

    //公用删除 前台效果删除  不清求数据库
    Vue.prototype.common_del=function(index,arr){
         this.$confirm('确定删除该条数据吗？', '提示', {  //删除确定弹框，公用
            confirmButtonText: '确定',
            cancelButtonText: '取消',
            type: 'warning'
          })
          .then(() => {
           
              if (index !== -1) {
                arr.splice(index,1)
              }
          })
          .catch(() => {})
    }

    //取消 编辑/新增页面取消返回上一页
    Vue.prototype.common_goback=function(){
         this.$router.go(-1)
    }

    //下载文件
    Vue.prototype.downloadFile = function(code){
      let tokenId = sessionStorage.getItem('tokenId')
      /*本地测试地址*/ 
      // window.location.href=process.env.BASE_API+'/op/fileupload/download_file?fileCode='+code+'&token='+tokenId
      /*发布测试地址*/
      window.location.href='download_file?fileCode='+code+'&token='+tokenId
    }

    //导出审批/项目列表  1项目 2 审批
    Vue.prototype.ExportFile_com = function(num){
      let tokenId = sessionStorage.getItem('tokenId') 
      /*发布测试地址*/
      window.location.href='export_excel?dataType='+num+'&token='+tokenId
      /*本地测试地址*/
      // window.location.href=process.env.BASE_API+'/op/fileupload/export_excel?dataType='+num+'&token='+tokenId
    }

    //生成data树
    Vue.prototype.formTreeTest = function(departList){
        let data = [];

        departList.forEach((item)=>{
         
          if( item.parentCode == 'rootroot'){
              data.push({
                id:item.id,
                name:item.name,
                code:item.code,
                parentCode:item.parentCode
              })
          }
          
        })
        // console.log(this.departList)
        return this.formNextTreeTest(departList,data)

    }
    
    //生成data树
    Vue.prototype.formNextTreeTest = function(departList,data){
          data.forEach((item)=>{
          let child= []
          departList.forEach((it)=>{
              if(item.code == it.parentCode){
                  child.push({
                    id:it.id,
                    name:it.name,
                    code:it.code,
                    parentCode:it.parentCode
                  })
              }
            })
            item.children=child
            if(child.length>0){
                this.formNextTreeTest(departList,child) //递归
            }
          })
          // this.treedata=data
          // console.log(data)
          // this.parentEditgroup=data
          return data
    }

    //判断是否是在pc端
    Vue.prototype.isPC_Mobile = function(){
      let t1 = new Date().getTime();
      let browser = {
          versions: function () {
              let u = navigator.userAgent, app = navigator.appVersion;
              return {//移动终端浏览器版本信息
                  trident: u.indexOf('Trident') > -1, //IE内核
                  presto: u.indexOf('Presto') > -1, //opera内核
                  webKit: u.indexOf('AppleWebKit') > -1, //苹果、谷歌内核
                  gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1, //火狐内核
                  mobile: !!u.match(/AppleWebKit.*Mobile.*/) || !!u.match(/AppleWebKit/), //是否为移动终端
                  ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端
                  android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, //android终端或者uc浏览器
                  iPhone: u.indexOf('iPhone') > -1 || u.indexOf('Mac') > -1, //是否为iPhone或者QQHD浏览器
                  iPad: u.indexOf('iPad') > -1, //是否iPad
                  webApp: u.indexOf('Safari') == -1 //是否web应该程序，没有头部与底部
              };
          } (),
          language: (navigator.browserLanguage || navigator.language).toLowerCase()
      }
      let flag = false;

      //1.是否mobile，否，肯定不是。
      if (browser.versions.mobile) {
          //2.是否ios或android终端，有一个是
          if (browser.versions.android || browser.versions.ios) {
            // console.log('mobile')
            //在这里更改需要设定的全局变量
            Vue.prototype.Global.currentDevice = true
            Vue.prototype.Global.dialog_label_Position = 'top'

               return flag = true;
          }
      }
      if (!flag) { //返回当前是pc端
          // console.log('pc');
          return flag
      }
    }

    //将文件里的标签数组转化成标签字符串，传入后台
    Vue.prototype.tagsChange_str = function(arr){
          arr.forEach((item)=>{
              if(item.tags.length!=0){
                  item.tags = item.tags.join(',')/*把数组中的元素放入字符串*/
              }
              else{
                item.tags= ''
              }
        })
        return arr
    }

    //判断当前浏览器版本-是否为ie9
    Vue.prototype.browserVision = function(){
        /*判断当前浏览器是ie9*/
        if(navigator.appName == "Microsoft Internet Explorer"&&parseInt(navigator.appVersion.split(";")[1].replace(/[ ]/g, "").replace("MSIE",""))<=9){
            // console.log("您的浏览器版本低于IE9");
            Vue.prototype.Global.ie_nine = true
        }
        // console.log('>ie9')
    }
    
    
};